1. Field of the Invention
The present invention relates to computer science. More specifically the present invention relates to an application player capable of automatically loading and running other application players.
2. Description of the Related Art
In recent years, there has been a dramatic rise in the popularity of non-traditional computing devices. Specifically, for many years the term “computer” has implied either a desktop computer or a laptop computer. With the advancement of battery, processor, and display technologies, however, it is now feasible to have fully functioning computers embedded in devices that previously were used solely for other purposes (e.g., mobile phones, televisions, refrigerators, etc.). Part of this revolution has included enabling all of these non-traditional computing devices to connect to the Internet.
Each of these non-traditional Internet-enabled devices typically has an operating system, from which various applications can be loaded and executed. An example of such an operating system is Android™ (an operating system designed by Google™ of Mountain View, Calif., for use in multiple manufacturers' products).
In order to aid in application design, the concept of application players (or simply “app players”) was introduced. An app player is a platform that can be executed by the operating system much in the way an application is executed. However, rather than running a single application, an app player is capable of running any number of different applications that have been specifically designed for it by developers. Typically these developers utilize a programming environment for the application player that allows them to easily create applications that are compatible with the app player platform. An example app player may be a game app player, where various games from different developers can be executed by the single app player. The developer may be provided with the game programming environment, which may include components such as standardized graphical interface objects (e.g., buttons, animation algorithms, etc.). The developer is then ensured that any user who obtains and runs the game app player can execute their developed game.
An app player is similar to, but is distinct from, a plug-in. A plug-in is a software component that extends the functionality of an application. No portion of the plug-in, however, can operate independently of the application to which it is being installed. An app player, on the other hand, has at least one component that can be run independently. Typically this component will be the interpreter. In that sense, the app player is more similar to a stand-alone application than it is to a plug-in.
Typically a user who wishes to run certain applications will download and install one or more app players of his or her choosing on his computing device. While this sort of paradigm may work well in simple environments, such as where the user has only a single non-traditional computing device (such as a mobile phone), it is now becoming more and more common for a user to have multiple non-traditional computing devices that are all connected to a network. A prime example is that televisions now are being shipped including computing capabilities that allow web surfing and other applications to be run from the television itself. A user may wish, for example, to run an application on a mobile phone that is currently installed on his television. This may include running the application as a whole, or could simply be an adjunct program to the version running on the television (for example, a remote control for the application on the television). To complicate matters, the television may be running on a different operating system than the mobile phone, and thus the app player required to run the application may not be readily apparent to the user. Furthermore, while some degree of user sophistication is often presumed (albeit many times incorrectly) in users of traditional computing devices, that same degree of user sophistication cannot be presumed in users of non-traditional computing devices. A user of a mobile phone and television combination will not have the same level of sophistication or patience for tracking down appropriate app players as a user of a desktop computer.
What is needed is a solution that permits interoperability of applications developed for different app players with the minimum of involvement on the part of the user.